home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Macro assembler dev syst.adf / include / devices / inputevent.i < prev    next >
Text File  |  1985-12-20  |  5KB  |  146 lines

  1.    IFND  DEVICES_INPUTEVENT_I
  2. DEVICES_INPUTEVENT_I SET   1
  3. ********************************************************************
  4. *               Commodore-Amiga, Inc.                              *
  5. *               inputevent.i                                       *
  6. ********************************************************************
  7. ********************************************************************
  8. *
  9. *  input event definitions
  10. *
  11. ********************************************************************
  12.  
  13.    IFND  DEVICES_TIMER_I
  14.    INCLUDE  "devices/timer.i"
  15.    ENDC
  16.  
  17. *------ constants ----------------------------------------------------
  18.   
  19. *   --- InputEvent.ie_Class ---
  20. * A NOP input event
  21. IECLASS_NULL            EQU   $00
  22. * A raw keycode from the keyboard device
  23. IECLASS_RAWKEY          EQU   $01
  24. * A raw mouse report from the game port device
  25. IECLASS_RAWMOUSE        EQU   $02
  26. * A private console event
  27. IECLASS_EVENT           EQU   $03
  28. * A Pointer Position report
  29. IECLASS_POINTERPOS      EQU   $04
  30. * A timer event
  31. IECLASS_TIMER           EQU   $06
  32. * select button pressed down over a Gadget (address in ie_EventAddress)
  33. IECLASS_GADGETDOWN      EQU $07
  34. * select button released over the same Gadget (address in ie_EventAddress)
  35. IECLASS_GADGETUP        EQU   $08
  36. * some Requester activity has taken place.  See Codes REQCLEAR and REQSET
  37. IECLASS_REQUESTER       EQU   $09
  38. * this is a Menu Number transmission (Menu number is in ie_Code)
  39. IECLASS_MENULIST        EQU   $0A
  40. * User has selected the active Window's Close Gadget
  41. IECLASS_CLOSEWINDOW     EQU   $0B
  42. * this Window has a new size
  43. IECLASS_SIZEWINDOW      EQU   $0C
  44. * the Window pointed to by ie_EventAddress needs to be refreshed
  45. IECLASS_REFRESHWINDOW   EQU   $0D
  46. * new preferences are available
  47. IECLASS_NEWPREFS        EQU   $0E
  48. * the disk has been removed
  49. IECLASS_DISKREMOVED     EQU   $0F
  50. * the disk has been inserted
  51. IECLASS_DISKINSERTED    EQU   $10
  52. * the window is about to be been made active
  53. IECLASS_ACTIVEWINDOW    EQU   $11
  54. * the window is about to be made inactive
  55. IECLASS_INACTIVEWINDOW  EQU   $12
  56.  
  57. * the last class
  58. IECLASS_MAX             EQU   $12
  59.  
  60. *   --- InputEvent.ie_Code --- 
  61. *  IECLASS_RAWKEY
  62. IECODE_UP_PREFIX        EQU   $80
  63. IECODEB_UP_PREFIX       EQU   7
  64. IECODE_KEY_CODE_FIRST   EQU   $00
  65. IECODE_KEY_CODE_LAST    EQU   $77
  66. IECODE_COMM_CODE_FIRST  EQU   $78
  67. IECODE_COMM_CODE_LAST   EQU   $7F
  68.   
  69. *  IECLASS_ANSI
  70. IECODE_C0_FIRST         EQU   $00
  71. IECODE_C0_LAST          EQU   $1F
  72. IECODE_ASCII_FIRST      EQU   $20
  73. IECODE_ASCII_LAST       EQU   $7E
  74. IECODE_ASCII_DEL        EQU   $7F
  75. IECODE_C1_FIRST         EQU   $80
  76. IECODE_C1_LAST          EQU   $9F
  77. IECODE_LATIN1_FIRST     EQU   $A0
  78. IECODE_LATIN1_LAST      EQU   $FF
  79.   
  80. *  IECLASS_RAWMOUSE
  81. IECODE_LBUTTON          EQU   $68  ; also uses IECODE_UP_PREFIX
  82. IECODE_RBUTTON          EQU   $69  ;
  83. IECODE_MBUTTON          EQU   $6A  ;
  84. IECODE_NOBUTTON         EQU   $FF
  85.   
  86. *  IECLASS_EVENT
  87. IECODE_NEWACTIVE        EQU   $01  ; active input window changed
  88.  
  89. *  IECLASS_REQUESTER Codes
  90. * REQSET is broadcast when the first Requester (not subsequent ones) opens
  91. * in the Window
  92. IECODE_REQSET           EQU   $01
  93. * REQCLEAR is broadcast when the last Requester clears out of the Window
  94. IECODE_REQCLEAR         EQU   $00
  95.  
  96.   
  97. *   --- InputEvent.ie_Qualifier ---
  98. IEQUALIFIER_LSHIFT      EQU   $0001
  99. IEQUALIFIERB_LSHIFT     EQU   0
  100. IEQUALIFIER_RSHIFT      EQU   $0002
  101. IEQUALIFIERB_RSHIFT     EQU   1
  102. IEQUALIFIER_CAPSLOCK    EQU   $0004
  103. IEQUALIFIERB_CAPSLOCK   EQU   2
  104. IEQUALIFIER_CONTROL     EQU   $0008
  105. IEQUALIFIERB_CONTROL    EQU   3
  106. IEQUALIFIER_LALT        EQU   $0010
  107. IEQUALIFIERB_LALT       EQU   4
  108. IEQUALIFIER_RALT        EQU   $0020
  109. IEQUALIFIERB_RALT       EQU   5
  110. IEQUALIFIER_LCOMMAND    EQU   $0040
  111. IEQUALIFIERB_LCOMMAND   EQU   6
  112. IEQUALIFIER_RCOMMAND    EQU   $0080
  113. IEQUALIFIERB_RCOMMAND   EQU   7
  114. IEQUALIFIER_NUMERICPAD  EQU   $0100
  115. IEQUALIFIERB_NUMERICPAD EQU   8
  116. IEQUALIFIER_REPEAT      EQU   $0200
  117. IEQUALIFIERB_REPEAT     EQU   9
  118. IEQUALIFIER_INTERRUPT   EQU   $0400
  119. IEQUALIFIERB_INTERRUPT  EQU   10
  120. IEQUALIFIER_MULTIBROADCAST    EQU   $0800
  121. IEQUALIFIERB_MULTIBROADCAST   EQU   11
  122. IEQUALIFIER_LBUTTON     EQU   $1000
  123. IEQUALIFIERB_LBUTTON    EQU   12
  124. IEQUALIFIER_RBUTTON     EQU   $2000
  125. IEQUALIFIERB_RBUTTON    EQU   13
  126. IEQUALIFIER_MBUTTON     EQU   $4000
  127. IEQUALIFIERB_MBUTTON    EQU   14
  128. IEQUALIFIER_RELATIVEMOUSE     EQU   $8000
  129. IEQUALIFIERB_RELATIVEMOUSE    EQU   15
  130.   
  131. *------ InputEvent ---------------------------------------------------
  132.   
  133.  STRUCTURE  InputEvent,0
  134.    APTR  ie_NextEvent         ; the chronologically next event
  135.    UBYTE   ie_Class           ; the input event class 
  136.    UBYTE   ie_SubClass        ; optional subclass of the class
  137.    UWORD   ie_Code            ; the input event code
  138.    UWORD   ie_Qualifier       ; qualifiers in effect for the event
  139.    LABEL ie_EventAddress      ; a pointer parameter for an event
  140.    WORD    ie_X               ; the pointer position for the event,
  141.    WORD    ie_Y               ;   usually in canvas relative coords 
  142.    STRUCT  ie_TimeStamp,TV_SIZE  ; the system tick at the event
  143.    LABEL   ie_SIZEOF
  144.  
  145.    ENDC
  146.